class: inverse,left, middle background-image: url(data:image/png;base64,#background.png) background-size: cover <img src="data:image/png;base64,#LOGO_DIPLOMADO.png" width="500px"/> ##Módulo 4: Procesamiento masivo de datos geoespaciales ###Análisis de series de tiempo con paquete "npphen" Roberto O. Chávez<br> <a href="http://github.com/xxxx"> Github: robertogrspucv</a><br> <a href="mailto:roberto.chavez@pucv.cl"> roberto.chavez@pucv.cl</a><br> --- class: center,middle background-image: url(data:image/png;base64,#labgrs_logo.png) background-size: 35% --- ## ¿Qué es "npphen"? <center><img src="data:image/png;base64,#img01_npphen.png" height="450px"/></center> .footnote[https://www.pucv.cl/uuaa/labgrs/proyectos/introduction-to-npphen-in-r] --- ## ¿Por qué fenologÃa? <center><img src="data:image/png;base64,#img08_geobon.png" height="450px"/></center> .footnote[https://geobon.org] --- ## FenologÃa desde el espacio: Ãndices vegetacionales <center><img src="data:image/png;base64,#img02_indices.png" height="450px"/></center> --- ## Lo que tratamos de estimar: leaf area index (LAI) <center><img src="data:image/png;base64,#img03_lai.png" height="450px"/></center> .footnote["Fotos hemisféricas de bosques de Lenga(Nothofagus pumilio) en el sur de Chile"] --- ## Land surface phenology <center><img src="data:image/png;base64,#img04_surf_phen.png" height="450px"/></center> --- ## Chile: un gradiente de "verdor" desde Atacama hasta Patagonia <center><img src="data:image/png;base64,#img05_gradient.png" height="450px"/></center> --- ## Ejemplos: series de EVI de bosques de Chile Central <center><img src="data:image/png;base64,#img06_tseries.png" height="500px"/></center> --- ## AnomalÃas EVI: ¿cuánto es grave? <center><img src="data:image/png;base64,#img07_grave.png" height="500px"/></center> --- ## "npphen": cuantificando "grave" <center><img src="data:image/png;base64,#img09_npphen.png" height="500px"/></center> --- ## Hiper-sequÃa 2019: ¿cuánto es grave? <center><img src="data:image/png;base64,#img10_hsequia.png" height="500px"/></center> --- ## Defoliación extrema Verano 2021 en Aysén <center><img src="data:image/png;base64,#img11_cuncuna.png" height="500px"/></center> --- ## Ranking de defoliaciones extremas en Aysén <center><img src="data:image/png;base64,#img12_cuncuplot.png" height="400px"/></center> --- ## AnomalÃas extremas de "tormenta de fuego" 2017 Llamamos librerÃas y leemos los datos ```r # Directorio de trabajo setwd("YourFolder/Clase_npphen") # LibrerÃas library(terra) library(npphen) library(tidyverse) library(RColorBrewer) #--------------------------------------------------------------------------# # Apertura de datos dates.table <- read.csv("MOD13Q1_dates_ts492.csv",sep = ",") dates <- dates.table$dates %>% as.Date() evi.st <- rast("MOD13Q1_NDVI_ts492.tif") nlyr(evi.st) ``` ``` ## [1] 492 ``` --- ## AnomalÃas extremas de "tormenta de fuego" 2017 Explorando los datos (Coord. plantación forestal) ```r xy1 <- cbind(225529, 6064306) %>% as.matrix() # e1 <- terra::extract(evi.st, xy1) %>% as.numeric() plot(x=dates,y=e1,type="l",ylab="EVI",xlab="", ylim=c(0,10000), col="green") ``` <img src="data:image/png;base64,#clase_npphen_files/figure-html/ex2-1.png" width="100%" /> --- ## AnomalÃas extremas de "tormenta de fuego" 2017 Explorando los datos (2 raster: antes, después) ```r par(mfrow = c(1, 2)) plot(evi.st[[343]], col=brewer.pal(9,"Greens"), range=c(1000,10000), main="antes") # 01-01-2015 plot(evi.st[[393]], col=brewer.pal(9,"Greens"), range=c(1000,10000), main="después") # 06-03-2017 ``` <img src="data:image/png;base64,#clase_npphen_files/figure-html/ex3-1.png" width="100%" /> --- ## Función Phenkplot (num. vector) ```r par(mfrow = c(1, 2)) PhenKplot(x=e1,dates=dates, h=2, rge=c(0,10000), xlab="DGS",ylab="EVI") PhenKplot(x=e1[1:366],dates=dates[1:366], h=2, rge=c(0,10000), xlab="DGS",ylab="EVI") ``` <img src="data:image/png;base64,#clase_npphen_files/figure-html/ex4-1.png" width="100%" /> --- ## Función Phen (num. vector) ```r phen_e1 <- Phen(x=e1[1:366],dates=dates[1:366], h=2, frequency="16-days", rge=c(0,10000)) ``` <img src="data:image/png;base64,#clase_npphen_files/figure-html/ex5-1.png" width="100%" /> --- ## Función Phen (num. vector) ```r plot(phen_e1, ylim=c(0,10000)) ``` <img src="data:image/png;base64,#clase_npphen_files/figure-html/ex6-1.png" width="100%" /> --- ## Función ExtremeAnom (num. vector) ```r anom_e1 <- ExtremeAnom(x=e1,dates=dates, h=2,refp=c(1:342), anop=c(343:492), rge=c(0,10000), output = "both", rfd = 0.9) ``` --- ## Función ExtremeAnom (num. vector) ```r par(mfrow=c(1,2)) barplot(anom_e1[1:150],col=ifelse(anom_e1[1:150]>0, 'dark green', 'orange'), names='', main='AnomalÃas') barplot(anom_e1[151:300],col=ifelse(anom_e1[151:300]>=90, 'red', 'grey'), names='', main='RFD', ylim=c(0, 100)) abline(h=90) ``` <img src="data:image/png;base64,#clase_npphen_files/figure-html/ex8-1.png" width="100%" /> --- ## ExtremeAnoMap: (raster stack) Mapenado anomalÃas extremas (solo 2017, linea base 2010-2016) ```r library(raster) # objeto clase raster stack se necesita para npphen library(npphen) dates.table <- read.csv("MOD13Q1_dates_ts492.csv",sep = ",") ddd <- as.Date(dates.table$dates)[229:411] evi.st.ras <- stack("MOD13Q1_NDVI_ts492.tif")[[229:411]] ExtremeAnoMap(s=evi.st.ras, dates=ddd, h=2, refp=c(1:160), anop=c(161:183), rge=c(0, 10000), output = 'both', rfd = 0.9, nCluster=10, outname='2017_tfuego.tif', format='GTiff', datatype='INT2S') ``` --- ## Visualizando los resultados ```r par(mfrow=c(1,2)) tfuego.map <- stack("2017_tfuego.tif") plot(tfuego.map[[1:4]], zlim=c(-7000,7000), col=brewer.pal(8, 'RdYlBu'))# Mapa de anomalÃas ``` <img src="data:image/png;base64,#clase_npphen_files/figure-html/ex10-1.png" width="100%" /> ```r plot(tfuego.map[[24:27]], zlim=c(0,100), col=brewer.pal(9, 'BuPu')) # Mapa de RFD ``` <img src="data:image/png;base64,#clase_npphen_files/figure-html/ex10-2.png" width="100%" /> --- ## AnomalÃa extrema (RFD>95) para una fecha ```r tf3 <- tfuego.map[[3]] rfd3 <- tfuego.map[[26]] tf3[rfd3<95]<-NA plot(tf3, zlim=c(-7000,7000), col=brewer.pal(8, 'RdYlBu')) ``` <img src="data:image/png;base64,#clase_npphen_files/figure-html/ex11-1.png" width="100%" /> --- class: inverse middle 